package com.av.acciones.usuario;

import org.apache.log4j.Logger;

import com.av.acciones.BaseAccion;
import com.av.db.dataobjects.Usuario;
import com.av.db.layer.interfaces.UsuarioLayer;
import com.av.exceptions.AvException;
import com.av.rmi.Parametro;
import com.av.rmi.Parametro.Tipo;

/**
 * Accion que valida la autentificacion de un usuario de datos configurada
 * 
 * @author Victor J Morales R
 * 
 */
public class ValidarAccion extends BaseAccion {
	private static Logger log = Logger.getLogger(ValidarAccion.class);

	@Override
	public Parametro ejecutar(Parametro parametro) throws AvException {
		log.info("Inicio - ejecutar(Parametro parametro)");

		UsuarioLayer ul = (UsuarioLayer) getBean(UsuarioLayer.BEAN_NAME);
		Usuario u = (Usuario) parametro.getValor(Tipo.INPUT);
		Usuario u2 = null;
		if (u != null && u.getUser() != null && u.getUser().trim().length() > 0) {
			u2 = ul.obtenerUsuarioPorUsername(u.getUser());
			if (u2 != null && u2.getPassword() != null
					&& u.getPassword().equals(u2.getPassword())) {
				parametro.setValor(Tipo.OUTPUT, u2);
			}
		}

		log.info("Fin - ejecutar(Parametro parametro)");

		return parametro;
	}// ejecutar
}// ObtenerTodosAcciones